package top.yxqz.mybatis.param.mapper;

import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;
import top.yxqz.mybatis.param.pojo.User;

import java.util.List;
import java.util.Map;

/**
 * @author: 余小小
 * @date: 2023/3/14
 * @description：
 */
public interface UserMapper {

    /**
     * 单个字面量作为参数（条件）
     * 通过用户的id查询用户的信息（一对一）
     * 信息——————对象（对一）
     */
    User getUserByIdParam(Integer id);


    /**
     * 通过用户名和密码查询一个用户信息
     * 多个字面量，可以使用Param注解进行限制，map的key
     */
    User getUserByUserNameAndPwdParam(@Param("userName") String userName,@Param("password") String Passwrod);

    /* 查询所有23岁的男性
     * @return
     */
    List<User> getUserByUserNameAndPwdParam2(Map<String,Object> target);

    /**
     * 通过查询所有用户
     */
    List<User> getUsresByEmail( User user);


    /**
     * 查询用户信息个数
     */
    Integer getCount();

    Map<String,Object> getUserByIdResMap( @Param("userID") Integer id);

    List<Map<String ,Object>> getAllUsersResMap();
    @MapKey("id")
    Map<String ,Object> getAllUsersResMap2();

    User getUserLikeUserName(@Param("userName") String userName);

    void deleteMoreUser(@Param("ids") String delID);


    /**
     * 添加一个用户
     */
    void  insertUser(User user);


}
